using JTZY.Model.Goods.Dto;
using JTZY.Model.Goods;
using JTZY.Model.Order.Dto;
using JTZY.Model.Business;

namespace JTZY.Service.Goods.IGoodsService
{
    /// <summary>
    /// 良品仓service接口
    /// </summary>
    public interface ICorecmsuserstockService : IBaseService<Corecmsuserstock>
    {
        PagedInfo<ProductStockDto> GetList(CorecmsuserstockQueryDto parm);
        PagedInfo<ProductStockDto> GetKtList(CorecmsuserstockQueryDto parm);

        Corecmsuserstock GetInfo(long Id);

        int Marketable(Corecmsuserstock modal);

        Corecmsuserstock AddCorecmsuserstock(Corecmsuserstock parm);
        int UpdateCorecmsuserstock(Corecmsuserstock parm);

        bool UpdateVipPrice(UpdateVipPriceDto parm);
        List<Corecmsuserstock> GetUserStockList(long userId, int goodId);
        PagedInfo<ProductStockDto> GetCustomerList(CorecmsuserstockQueryDto parm);
        UserStockDto GetUserStock(CorecmsuserstockQueryDto parm);
        List<WarehouseDto> QueryWarehouseList(long userId);
        bool UpdateStockWarnLine(StockWarnUpdataDto parm);

        PagedInfo<PurStockManageDto> GetPurStockManageList(PurStockManageQueryDto parm);

        bool UpdatePurStockInvalVipPrice(InvalVipPriceUpdateDto parm);

        Task<PurStockManageMasterhDto> GetPurStockDetailByGoodsId(PurStockManageDetailQueryDto parm);

        bool UpdateVipSalePrice(PurStockManageMasterhDto parm);

        Task<PurStockManageMasterhDto> GetPurStockWarnLineByGoodsId(PurStockManageDetailQueryDto parm);

        bool UpdateStockWarnLine(PurStockManageMasterhDto parm);

        PagedInfo<ExportPurStockManageDto> GetExportPurStockManageList(PurStockManageQueryDto parm);

        bool ImportDistribution(long userId, List<ImportPurStockDto> list2, bool append = false);

        Task<ReStockMasterDto> GetReStockList(ReStockQueryDto parm,long UserId);

        bool ReStockAdd(List<PurStockManageMasterhDto> parm, long loginUserId);

        PagedInfo<ProductStockDto> ExportList(CorecmsuserstockQueryDto parm);

        PagedInfo<ProductMiniStockDto> ExportMiniList(CorecmsuserstockQueryDto parm);
    }
}
